package moa.learners.reservoir;


public interface AbstractBlackList {

	/**
	 * This method looks for the given sequence in the black list
	 * 
	 * @param seqNumber number of the sequence to look for
	 * @return true if the sequence is blacklisted, false otherwise
	 */
	public boolean contains( String seqNumber);

	/**
	 * This method signals to the black list that the counter for
	 * each sequence must be decremented (i.e. a window slide occurred) 
	 */
	public void decrement();

	/**
	 * This method adds a sequence to the black list, together with its
	 * window size at that moment in the reservoir, which gives the number
	 * of window slides to occur before it is removed from the black list
	 * 
	 * @param seqNumber number of the sequence to be added
	 * @param windowSize size of the sequence's window at blacklisting time
	 */
	public void add( String seqNumber, int windowSize);

	/**
	 * This method creates a string representing the internal state of
	 * the object, i.e. a list of every black listed sequence with its
	 * associated counter
	 * 
	 * @return representation of the contents
	 */
	public String inspect();
}
